﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Demo01
{
    class Program
    {
        public string Name { get; set; }
        public int Age { get; set; }
        public char Sex { get; set; }
        public static string Teacher { get; set; }

        public void Test()
        {
            Console.WriteLine("名字是：{0},性别为：{1},年龄是：{2},老师：{3}", this.Name, this.Sex, this.Age, Teacher);
        }
        public Program(string name, char sex, int age, string teacher)
        {
            this.Name = name;
            this.Sex = sex;
            this.Age = age;
            Teacher = teacher;
        }
        static void Main(string[] args)
        {
            //静态字段存储的值在所有实例化之间是共享的。

            //作业：
            //现在开班了，班里老师只有一个，叫唐僧。班里的五个人都知道老师叫唐僧(也就是说老师这个字段是共享的)。但是某一天唐僧要去女儿国走丈母娘家了，课不能停啊。所以就请嫦娥姐姐过来带一段课。

            //现在5个学生都知道老师换成嫦娥姐姐了，都很激动哈。但是她们是怎么都知道换老师的呢？还是这个静态字段的功劳，将老师姓名声明为静态字段，这个字段是共享的。所以该类的属性都能知道。

            //请用代码写出上面的剧情。

            //提示：
            //定义一个学生类（有哪些字段属性？修饰符是什么？自己考量定义，至少学生姓名要吧），定义一个有参构造方法用来初始化学生姓名。学生类中定义一个成员方法，用来输出学生的信息。

            //Main方法中，创建5个学生对象，每个学生执行输出学生信息的方法。
            //学生的老师变更，
            //再执行每个学生执行输出学生信息的方法。
            Console.WriteLine("换老师前:");
            Program P = new Program("阿刁", '男', 20, "唐僧");
            Program P2 = new Program("阿肆", '女', 19, "唐僧");
            Program P3 = new Program("阿彪", '男', 18, "唐僧");
            Program P4 = new Program("阿喵", '女', 19, "唐僧");
            Program P5 = new Program("阿基", '男', 19, "唐僧");
            P.Test();
            P2.Test();
            P3.Test();
            P4.Test();
            P5.Test();
            Console.WriteLine("换老师后：");
            Teacher = "嫦娥";
            P.Test();
            P2.Test();
            P3.Test();
            P4.Test();
            P5.Test();

        }
    }
}
